
<form id="Form" method="post" action="<?echo base_url().'index.php/evaluacion/guardar_asignacion'?>">
	<input name="id_edicion" type="hidden" value="<? echo $id_edicion?>" id="id_edicion"/>
		<div class="panel with-nav-tabs panel-info">
		  <div class="panel-heading">
			<div class="right-content">
				<div class="btn-group">
					<button class="btn btn-info btn-sm btn-rounded-lg dropdown-toggle" data-toggle="dropdown">
					<i class="fa fa-cog"></i>
					</button>
					
				</div>
				<button class="btn btn-info btn-rounded-lg to-collapse" data-toggle="collapse" data-target="#panel-collapse-2"><i class="fa fa-chevron-up"></i></button>
			</div>
			<ul class="nav nav-tabs">
				<li class="active"><a href="#panel-1" data-toggle="tab">Asignaciones</a></li>
				<li><a href="#panel-2" data-toggle="tab">Personas sin asignaci&oacute;n</a></li>
			</ul>
		  </div>
			<div id="panel-collapse-2" class="collapse in">
			  <div class="panel-body">
				<div class="tab-content">
					<div class="tab-pane fade in active" id="panel-1">


						<div class="row">		


							 <div class="form-group" id="div_evaluador">
							 	<div class="col-lg-7">
								<label class="control-label">Persona que realizará la evaluación </label>
								
									<select data-placeholder="Seleccione..." class="form-control chosen-select" tabindex="1" id="evaluador" name="evaluador">
									<option value="">Seleccione...</option>										
										<?php foreach ($evaluadores as $v) { ?>
							 				<option value="<?php echo $v['id_empleado']?>"><?php echo $v['nr'].'- '.ucwords($v['nombre']);?></option>
							 			<?php } ?>
										
									</select>
									<input type="checkbox"  value="-1" onChange="this.value*=-1; if(this.value==1){cm=true;}else{cm=false;}" id="cambiar"/> Cambiar persona evaluadora
									<small data-bv-validator="notEmpty" class="help-block" style="display: none;">Debe seleccionar evaluador</small>
								</div>
							</div>
						</div>	

						<div class="row">

							<div class="form-group">
							 	<div class="col-lg-8">
							 			<label class="control-label">Personas evaluadas</label>							 		
									<div class="row">
										<div class="col-lg-8"> 
											<select data-placeholder="Seleccione..." class="form-control chosen-select" tabindex="2" id="empleado" name="empleado">
												<option value="">Seleccione...</option>
												<?php foreach ($empleados as $v) { ?>
									 				<option value="<?php echo $v['id_empleado']?>"><?php echo $v['nr'].'- '.ucwords($v['nombre']);?></option>
									 			<?php } ?>
												
											</select>
											<small data-bv-validator="notEmpty" class="help-block" style="display: none;">Debe seleccionar empleado</small>
										</div>
										<div class="col-lg-2"> 
											<button type="button" id="boton-local" class="btn btn-default"><i class="fa fa-plus-circle" ></i>Agregar</button>	
										</div>
									</div>	<!---row select y boton -->		
								</div>
							</div>
						</div><br>
								<div class="table-responsive row">
									<div class="col-lg-7"> 
											<label class="control-label">Personas no asignadas</label>							 		
									<table class="table table-th-block table-info" id="tabla-dinamica">
										<thead>
											<tr>												
												<th>NR</th>
												<th>Nombre</th>
												<th>Cargo Funcional</th>
												<th>Opciones</th>												
											</tr>
										</thead>
										<tbody>
											
										</tbody>
									</table>
						
										</div><!-- /.col-lg-7 -->
								</div><!-- /.table-responsive -->					
	
					</div><!-- /#panel-1 -->
					<div class="tab-pane fade" id="panel-2">
							
									<div class="table-responsive row">
									<div class="col-lg-7"> 
						
									<table class="table table-th-block table-info" id="tabla-dinamica2">
										<thead>
											<tr>												
												<th>NR</th>
												<th>Nombre</th>
												<th>Cargo Funcional</th>
												<th>Opciones</th>
											</tr>
										</thead>
										<tbody>
											
										</tbody>
									</table>
						
										</div><!-- /.col-lg-7 -->
								</div><!-- /.table-responsive -->					




							<!-- En este div se guardaran todos aquellos id que fueron eliminados  -->   
								 <div class="oculto" id="eliminados"></div>
								 <div class="oculto" id="repetidos"></div>



					</div><!-- /.tab-pane fade -->
				</div><!-- /.tab-content -->
			  </div><!-- /.panel-body -->
				<div class="panel-footer">
					<div class="modal-footer">						
						<button type="submit" class="btn btn-info" id="btn-guardar-todo">Guardar</button>
					</div>
				</div>
			</div><!-- /.collapse in -->
		</div>
	</form>

						
                  		

<script type="text/javascript">
/*-----------------------------Manejo de datos--------------------------------------------- 
----------------------------------------------------------------------------------*/
	var	asignaciones=new Array(); //asignaciones para un empleados
	var	all_empleados=<?php echo $all_empleados;?>;  //contiene los datos de todos los empleados
	var repetidos  = new Array(); // contendra los id de empleados que previamente estaban asignados a otro evaluador, a fin de no repetir la asignacion
	var	asignados = <?php echo $asignados;?>;  //contiene los datos de todos los empleados
	var	no_asignados = <?php echo $no_asignados;?>;  //contiebe los datos de todos los empleados que no tienen asignado evaluador
	var cm=false; ///esta variable es una bandera para determinar si se va a cambiar un evaluador 




	function agregar(id) {
		t=getObjects(all_empleados, 'id_empleado', id);
		//verificamos que no este repetido
		t2=getObjects(asignaciones, 'id_empleado', id);
		if(t2.length==0) { //se verifica que el empleado no este ingresado 

			t3=getObjects(asignados, 'id_empleado', id); //verificamos si el empleado ya tiene  una asignacion anteriormente
			if (t3.length==0){  //si no esta simplemente se agrega
					t[0].nombre= ucword(t[0].nombre);
					t[0].funcional= ucword(t[0].funcional);
					t[0].id_evaluacion= 0; ///se deja en 0 para indicar que  es un nuevo registro y que no posee id
					t[0].asignado= 0;  //un registro que no tenia asignado evaluador

					$toast=toastr["info"]("Asignacion hecha. Recuerde guardar cambios.");
					asignaciones.push(t[0]);
					quitar_no_asignado(t[0].id_empleado);
					mostrar_tabla();
			}else{ //cuando ya tenia una asignacion previa se pregunta si proceder
				confirmacion("El empleado seleccionado ya tiene asignado un evaluador  <br><br> ¿Desea cambiar el evaluador de esta persona?","javascript:para_quitar_evaluador("+id+")");
			}
			
		}else{
			//mostramos el mensaje que el empleado ya ha sido introducido
			$toast=toastr["info"]("El empleado ya ha sido agregado");
		}
		

	}
function cargar_asignaciones () {
	var id_edicion= $('#id_edicion').val();
	$.ajax({
	        async:  true, 
	        url:    base_url()+"/index.php/evaluacion/empleados_asignados_json/"+evalu+"/"+id_edicion,
	        dataType:"json",
	        success: function(data){
	        	///se procede a  preparar los datos para mostrarlos
	        	for (var i = 0; i < data.length; i++) {
	        		data[i].nombre= ucword(data[i].nombre);
	        		data[i].funcional= ucword(data[i].funcional);	        		
	        	}
	        	/////////////////////////pasos para transferir los empleados a otro evaluador
	        		if (cm) { //si va a cambiarles el evaluador
	        			temp=asignaciones;
	        			asignaciones=data;
	        			for (var i = 0; i < temp.length; i++) {
	        				temp[i].id_evaluacion= 0; ///se deja en 0 para indicar que  es un nuevo registro y que no posee id
							temp[i].asignado= 1;
	        				asignaciones.push(temp[i]);//agregamos los empleados que ya estaban a la lista
	        				repetidos.push(temp[i].id_empleado);    		
	        			}
	        			div_repetidos();
	        		//////////
	        		}else{
						//cuando no se cambian los datos simplemente se  cargan los que ya tenian asignados la paersona
						asignaciones=data;
						repetidos=new Array();	        	
	        			$('#repetidos').html("");	        			
	        			$('#eliminados').html("");
	        		}



	        	mostrar_tabla();
            },
        error:function(data){
            
            console.log("error al cargar los datos");
            
            }
        }); 

}

function mostrar_tabla () {
    			$('#tabla-dinamica tbody').empty();
    			var html="";
    			var j=1;
    			total=0
    			for (var i = 0; i < asignaciones.length; i++) {
    				
    				input1='<input name="asignaciones[]" value="'+asignaciones[i].id_empleado+'" type="hidden"></input>';
    				input2='<input name="evaluaciones[]" value="'+asignaciones[i].id_evaluacion+'" type="hidden"></input>';

					fila='<tr>  '+
							'<td>'+asignaciones[i].nr+input1+input2+'</td>'+
							'<td>'+asignaciones[i].nombre+'</td>'+
							'<td>'+asignaciones[i].funcional+'</td>'+							
							'<td>	<button class="btn btn-default btn-xs" type="button"  onclick="eliminar_local('+i+')"><i class="fa fa-trash-o fa-2x"></i></button></td>'+
						'</tr>	';
				html+=fila;
				j++;
    			}


    			$('#tabla-dinamica tbody').html(html);
    			mostrar_tabla2(); ///se actualiza la tabla de no asignados
    			///Se valida que  este ingresado al menos un empleado
				if (asignaciones.length!=0) {
					 $('#btn-guardar-todo').attr("disabled", false);
				} else{
					$('#btn-guardar-todo').attr("disabled", true);
				};
    	}

	function eliminar_local(ind) {
    		$('#eliminados').html($('#eliminados').html()+'<input name="eliminados[]" value="'+asignaciones[ind].id_evaluacion+'" type="hidden" />');
    	
    	var temp = new Array();
    	var aux = 0;
		for (i=0;i<asignaciones.length;i++) {
			if (i!=ind) {
					temp.push(asignaciones[i]);
			}else{
				d=asignaciones[i];				
				if(asignaciones[i].asignado==1){ aux =asignaciones[i].id_empleado;}
			}
		}

/*
		Si descomento esto pasara la siguiente, cuando se haga cambio de evaluador y se elimine uno,  
		el empleado que se elimine pasara a tener su antigua asignacion 
			if(aux!=0){
				quitar_repetidos(aux);
			}else{///se agrega a la lista de no asignados cuando no existia una asignacion previa
				no_asignados.push(d);
			}

	*/
			no_asignados.push(d);  ///esta linea se debe de  quitar si se habilita el codigo anterior
			asignaciones=temp;
			mostrar_tabla();

    	}
    /////////////////funciones para controlar que no se repetita un evaluador
    function para_quitar_evaluador(id) {

    		t=getObjects(all_empleados, 'id_empleado', id);
    		t[0].nombre= ucword(t[0].nombre);
			t[0].funcional= ucword(t[0].funcional);
			t[0].id_evaluacion= 0; ///se deja en 0 para indicar que  es un nuevo registro y que no posee id
			t[0].asignado= 1; 
			asignaciones.push(t[0]);
			mostrar_tabla();
    		repetidos.push(t[0].id_empleado);    		
    		div_repetidos();


    }
    function div_repetidos () {

    	var html="";
    	
    	for (var i = 0; i < repetidos.length; i++) {
    		input='<input name="repetidos[]" value="'+repetidos[i]+'" type="hidden"></input>';
    		html+=input;

    	}
    	$('#repetidos').html(html);

    }
    function quitar_repetidos(id){

    	var temp = new Array();
		for (i=0;i<repetidos.length;i++) {
			if (repetidos[i]!=id) {
					temp.push(repetidos[i]);
			}
		}
			repetidos=temp;
			div_repetidos();

    	
    }
    	//////////////////////////////para los que no tenian asignado evaluador
   function quitar_no_asignado (id) {
   	    	var temp = new Array();
		for (i=0;i<no_asignados.length;i++) {
			if (no_asignados[i].id_empleado!=id) {
					temp.push(no_asignados[i]);
			}
		}
			no_asignados=temp;
   }
function mostrar_tabla2 () {
    			$('#tabla-dinamica2 tbody').empty();
    			var html="";		
    		for (var i = 0; i < no_asignados.length; i++) {    				
					fila='<tr>  '+
							'<td>'+no_asignados[i].nr+'</td>'+
							'<td>'+no_asignados[i].nombre+'</td>'+
							'<td>'+no_asignados[i].funcional+'</td>'+												
						'</tr>	';
				html+=fila;
				
    			}
    			$('#tabla-dinamica2 tbody').html(html);

    	}
function precargar (argument) {
		for (var i = 0; i < no_asignados.length; i++) {
		no_asignados[i].nombre=ucword(no_asignados[i].nombre);
		no_asignados[i].funcional=ucword(no_asignados[i].funcional);
	}
	mostrar_tabla2();
}

/*-----------------------------eventos--------------------------------------------- 
----------------------------------------------------------------------------------*/
  	var evalu="";
  	var evatemp="";

  	$("#evaluador").chosen({width: "95%"}).change(function(e) {
 				 			

	var b=($("#evaluador").val()=="")?true:false;

	efecto_validacion("#evaluador",b);	
			

			if (!b && evalu!=""){						
					evatemp=$("#evaluador").val();					
					if(evalu!=evatemp&&cm==false){  ///cm false, indica que no va a cambiarles el evaluador 
						$("#evaluador").val(evalu);
						$('#evaluador').trigger("chosen:updated");
						confirmacion("Si cambia de evaluador sin guardar, los datos previamente introducidos seperderán. <br><br>¿Desea continuar?","javascript:cambiar_evaluador()");
					}else{
						
						cambiar_evaluador(); //los siguientes pasos para este caso estan en la funcion cargar asignaciones

					}

			}else{
				if (!b){
					evalu=$('#evaluador').val();
					cargar_asignaciones();										
				}	
				
			} 
 		
	} );

 	$('#boton-local').click(function(e) {
 		v=$('#empleado').val();
 		var b=(v=="")?true:false;
 		efecto_validacion('#empleado',b); 
 		if (!b) {
 			agregar(v);
 		} 

 	});

function cambiar_evaluador() {
	
	$("#evaluador").val(evatemp);
	$('#evaluador').trigger("chosen:updated");
	evalu=evatemp;
	cargar_asignaciones();
}
 
 $('#Form').on('submit',function(e) {
	
	console.log("haciendo submit")
	if ($('#evaluador').val()=="") {
		e.preventDefault();
		$('#btn-guardar-todo').attr("disabled", true);
		efecto_validacion('#evaluador',true);
	};
}) 
/*-----------------------------Validacion--------------------------------------------- 
----------------------------------------------------------------------------------*/


///////////////////////////////////////////ejecucion de funciones 
precargar();



     </script>


